﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Noris.Tools.TraceVisualiser.Support
{
    /// <summary>
    /// Třída určená pro ukládání libovolných uživatelských dat
    /// </summary>
    public class UserData : Dictionary<string, object>
    {
        /// <summary>
        /// Uloží do daného klíče danou hodnotu.
        /// Pokud klíč existuje, přepíše jeho hodnotu.
        /// Pokud neexistuje, založí nový.
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public void Set(string key, object value)
        {
            if (this.ContainsKey(key))
                this[key] = value;
            else
                this.Add(key, value);
        }
        public string GetString(string key, string defaultValue)
        {
            object value;
            if (this.TryGetValue(key, out value) && value is string)
                return (string)value;
            return defaultValue;
        }
        public Int32 GetInt32(string key, Int32 defaultValue)
        {
            object value;
            if (this.TryGetValue(key, out value) && value is Int32)
                return (Int32)value;
            return defaultValue;
        }
        public DateTime GetDateTime(string key, DateTime defaultValue)
        {
            object value;
            if (this.TryGetValue(key, out value) && value is DateTime)
                return (DateTime)value;
            return defaultValue;
        }
    }
}
